package cn.eonshine.cuba.inf.modular.api;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import cn.eonshine.cuba.inf.common.http.Message;

public interface ICommonService<T> extends IService<T> {
	/**
	 * <pre>
	 * 根据客户端请求查询数据，并将数据反馈给客户端
	 * 中间过程，数据必须加密
	 * </pre>
	 * @param clientMessage
	 * @return Message
	 */
	public Message queryDataList(Message clientMessage);
	
	/**
	 * <pre>将服务端的信息反馈回给服务端，服务端将数据状态置0
	 * 反馈信息必须包含 code 和 DATA_INPUT_DATETIME，作为唯一主键确认
	 * [
	 *  {code: '0001', DATA_INPUT_DATETIME: 'yyyyMMddHHmmss'},
	 *  {code: '0002', DATA_INPUT_DATETIME: 'yyyyMMddHHmmss'}
	 * ]</pre>
	 * @param clientMessage 客户端 发送的message信息
	 * @param isUpdate 0-delete 1-update
	 * @return Message
	 */
	public Message changeLsmsUpdate(Message clientMessage, int isUpdate);
	
	/**
	 * 数据删除服务，将数据清理，并返回清理结果
	 * @param message
	 * @return Message
	 */
	public Message deleteData(Message message);
	
	/**
	 * 关联mapping表查询数据
	 * @param page
	 * @param entitys
	 * @return Page
	 */
	public Page<T> selectInfPage(Page<T> page, Wrapper<T> t);
}
